<!DOCTYPE html>
<html>
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title></title>
  </head>
  <body>
    <div id="app">
      <com-a></com-a>
      <com-b></com-b>
    </div>
    <script src="./vue.js"></script>
    <script>

      // 全局：定义混入的逻辑，将来其他组件都会拥有
      // Vue.mixin({
      //   // vue 配置选项
      //   methods: {
      //     tip () {
      //       alert('你好')
      //     }
      //   }
      // })

      // 局部混入
      const tip = {
        // vue 配置选项
        methods: {
          tip () {
            alert('你好')
          }
        }
      }

      Vue.component('com-a', {
        template: `<div>组件A  <button @click="tip()">按钮</button></div>`,
        // methods: {
        //   tip () {
        //     alert('你好')
        //   }
        // }
        // 混入配置选项
        mixins: [tip]
      })
      Vue.component('com-b', {
        template: `<div>组件B  <button @click="tip()">按钮</button></div>`,
        // methods: {
        //   tip () {
        //     alert('你好')
        //   }
        // }
      })

      const vm = new Vue({
        el: '#app',
        data: {},
        methods: {}
      })
    </script>
  </body>
</html>